{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SIMPLE CONVOLUTIONAL NEURAL NETWORK"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PACKAGES LOADED\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "import matplotlib.pyplot as plt\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "%matplotlib inline  \n",
    "print (\"PACKAGES LOADED\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LOAD MNIST"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting data/train-images-idx3-ubyte.gz\n",
      "Extracting data/train-labels-idx1-ubyte.gz\n",
      "Extracting data/t10k-images-idx3-ubyte.gz\n",
      "Extracting data/t10k-labels-idx1-ubyte.gz\n",
      "MNIST ready\n"
     ]
    }
   ],
   "source": [
    "mnist = input_data.read_data_sets('data/', one_hot=True)\n",
    "trainimg   = mnist.train.images\n",
    "trainlabel = mnist.train.labels\n",
    "testimg    = mnist.test.images\n",
    "testlabel  = mnist.test.labels\n",
    "print (\"MNIST ready\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# SELECT DEVICE TO BE USED"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "device_type = \"/gpu:1\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DEFINE CNN  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CNN ready\n"
     ]
    }
   ],
   "source": [
    "with tf.device(device_type): # <= This is optional\n",
    "    n_input  = 784\n",
    "    n_output = 10\n",
    "    weights  = {\n",
    "        'wc1': tf.Variable(tf.random_normal([3, 3, 1, 64], stddev=0.1)),\n",
    "        'wd1': tf.Variable(tf.random_normal([14*14*64, n_output], stddev=0.1))\n",
    "    }\n",
    "    biases   = {\n",
    "        'bc1': tf.Variable(tf.random_normal([64], stddev=0.1)),\n",
    "        'bd1': tf.Variable(tf.random_normal([n_output], stddev=0.1))\n",
    "    }\n",
    "    def conv_simple(_input, _w, _b):\n",
    "        # Reshape input\n",
    "        _input_r = tf.reshape(_input, shape=[-1, 28, 28, 1])\n",
    "        # Convolution\n",
    "        _conv1 = tf.nn.conv2d(_input_r, _w['wc1'], strides=[1, 1, 1, 1], padding='SAME')\n",
    "        # Add-bias\n",
    "        _conv2 = tf.nn.bias_add(_conv1, _b['bc1'])\n",
    "        # Pass ReLu\n",
    "        _conv3 = tf.nn.relu(_conv2)\n",
    "        # Max-pooling\n",
    "        _pool  = tf.nn.max_pool(_conv3, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')\n",
    "        # Vectorize\n",
    "        _dense = tf.reshape(_pool, [-1, _w['wd1'].get_shape().as_list()[0]])\n",
    "        # Fully-connected layer\n",
    "        _out = tf.add(tf.matmul(_dense, _w['wd1']), _b['bd1'])\n",
    "        # Return everything\n",
    "        out = {\n",
    "            'input_r': _input_r, 'conv1': _conv1, 'conv2': _conv2, 'conv3': _conv3\n",
    "            , 'pool': _pool, 'dense': _dense, 'out': _out\n",
    "        }\n",
    "        return out\n",
    "print (\"CNN ready\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DEFINE COMPUTATIONAL GRAPH"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Network Ready to Go!\n"
     ]
    }
   ],
   "source": [
    "# tf Graph input\n",
    "x = tf.placeholder(tf.float32, [None, n_input])\n",
    "y = tf.placeholder(tf.float32, [None, n_output])\n",
    "# Parameters\n",
    "learning_rate   = 0.001\n",
    "training_epochs = 10\n",
    "batch_size      = 100\n",
    "display_step    = 1\n",
    "# Functions! \n",
    "with tf.device(device_type): # <= This is optional\n",
    "    _pred = conv_simple(x, weights, biases)['out']\n",
    "    cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(_pred, y))\n",
    "    optm = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)\n",
    "    _corr = tf.equal(tf.argmax(_pred,1), tf.argmax(y,1)) # Count corrects\n",
    "    accr = tf.reduce_mean(tf.cast(_corr, tf.float32)) # Accuracy\n",
    "    init = tf.initialize_all_variables()\n",
    "# Saver \n",
    "save_step = 1;\n",
    "savedir = \"nets/\"\n",
    "saver = tf.train.Saver(max_to_keep=3) \n",
    "print (\"Network Ready to Go!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# OPTIMIZE\n",
    "## DO TRAIN OR NOT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "do_train = 1\n",
    "sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True))\n",
    "sess.run(init)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 000/010 cost: 0.326192696\n",
      " Training accuracy: 0.980\n",
      " Test accuracy: 0.959\n",
      "Epoch: 001/010 cost: 0.105607550\n",
      " Training accuracy: 0.960\n",
      " Test accuracy: 0.975\n",
      "Epoch: 002/010 cost: 0.072013733\n",
      " Training accuracy: 0.960\n",
      " Test accuracy: 0.979\n",
      "Epoch: 003/010 cost: 0.056868095\n",
      " Training accuracy: 0.990\n",
      " Test accuracy: 0.980\n",
      "Epoch: 004/010 cost: 0.047069814\n",
      " Training accuracy: 0.990\n",
      " Test accuracy: 0.983\n",
      "Epoch: 005/010 cost: 0.040124569\n",
      " Training accuracy: 0.980\n",
      " Test accuracy: 0.983\n",
      "Epoch: 006/010 cost: 0.035343169\n",
      " Training accuracy: 0.990\n",
      " Test accuracy: 0.983\n",
      "Epoch: 007/010 cost: 0.030736405\n",
      " Training accuracy: 1.000\n",
      " Test accuracy: 0.984\n",
      "Epoch: 008/010 cost: 0.026192359\n",
      " Training accuracy: 0.990\n",
      " Test accuracy: 0.983\n",
      "Epoch: 009/010 cost: 0.024165640\n",
      " Training accuracy: 1.000\n",
      " Test accuracy: 0.983\n",
      "Optimization Finished.\n"
     ]
    }
   ],
   "source": [
    "if do_train == 1:\n",
    "    for epoch in range(training_epochs):\n",
    "        avg_cost = 0.\n",
    "        total_batch = int(mnist.train.num_examples/batch_size)\n",
    "        # Loop over all batches\n",
    "        for i in range(total_batch):\n",
    "            batch_xs, batch_ys = mnist.train.next_batch(batch_size)\n",
    "            # Fit training using batch data\n",
    "            sess.run(optm, feed_dict={x: batch_xs, y: batch_ys})\n",
    "            # Compute average loss\n",
    "            avg_cost += sess.run(cost, feed_dict={x: batch_xs, y: batch_ys})/total_batch\n",
    "\n",
    "        # Display logs per epoch step\n",
    "        if epoch % display_step == 0: \n",
    "            print (\"Epoch: %03d/%03d cost: %.9f\" % (epoch, training_epochs, avg_cost))\n",
    "            train_acc = sess.run(accr, feed_dict={x: batch_xs, y: batch_ys})\n",
    "            print (\" Training accuracy: %.3f\" % (train_acc))\n",
    "            test_acc = sess.run(accr, feed_dict={x: testimg, y: testlabel})\n",
    "            print (\" Test accuracy: %.3f\" % (test_acc))\n",
    "\n",
    "        # Save Net\n",
    "        if epoch % save_step == 0:\n",
    "            saver.save(sess, \"nets/cnn_mnist_simple.ckpt-\" + str(epoch))\n",
    "    print (\"Optimization Finished.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# RESTORE "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "if do_train == 0:\n",
    "    epoch = training_epochs-1\n",
    "    saver.restore(sess, \"nets/cnn_mnist_simple.ckpt-\" + str(epoch))\n",
    "    print (\"NETWORK RESTORED\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LET'S SEE HOW CNN WORKS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "with tf.device(device_type):\n",
    "    conv_out = conv_simple(x, weights, biases)\n",
    "\n",
    "input_r = sess.run(conv_out['input_r'], feed_dict={x: trainimg[0:1, :]})\n",
    "conv1   = sess.run(conv_out['conv1'], feed_dict={x: trainimg[0:1, :]})\n",
    "conv2   = sess.run(conv_out['conv2'], feed_dict={x: trainimg[0:1, :]})\n",
    "conv3   = sess.run(conv_out['conv3'], feed_dict={x: trainimg[0:1, :]})\n",
    "pool    = sess.run(conv_out['pool'], feed_dict={x: trainimg[0:1, :]})\n",
    "dense   = sess.run(conv_out['dense'], feed_dict={x: trainimg[0:1, :]})\n",
    "out     = sess.run(conv_out['out'], feed_dict={x: trainimg[0:1, :]})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Input"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'input_r' is (1, 28, 28, 1)\n",
      "Label is 7\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/lib/pymodules/python2.7/matplotlib/collections.py:548: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
      "  if self._edgecolors == 'face':\n"
     ]
    },
    {
     "data": {
      "image/png": "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\niEhX+n/E9jz1Y0DWUQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1a5a810>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see 'input_r'\n",
    "print (\"Size of 'input_r' is %s\" % (input_r.shape,))\n",
    "label = np.argmax(trainlabel[0, :])\n",
    "print (\"Label is %d\" % (label))\n",
    "\n",
    "# Plot ! \n",
    "plt.matshow(input_r[0, :, :, 0], cmap=plt.get_cmap('gray'))\n",
    "plt.title(\"Label of this image is \" + str(label) + \"\")\n",
    "plt.colorbar()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Conv1 (convolution)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'conv1' is (1, 28, 28, 64)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n/wfR3c7zsN8D3QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62b820d690>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63fbc64290>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQcAAADvCAYAAAD/yxH8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGkNJREFUeJzt3X2QXXV9x/F3yHOyIZBHNmGTRSLIw5QQNDCkSlRkEhzR\n2KqbloFatE6nIqWdKWA7mmqnBWawjNoyiODgE7tWxNJqVGB8wCChWTYPN7CSEDYxJLsJeSLJJmGz\n2f7xPXf37M3vd+4595579z58XjNncu/vnN85Jze53/s7v0cQEREREREREREREREREREZZhXwnZG+\nCRGXM0b6BmrIOOBhoAt4E+gAloX2LwX+kJNnoBw3VoRLgZ8De4FTI3wvUmYKDukZA+wA3gOcCfwT\n8ANgfkSeUWW4r2K8BbQCt4z0jVSLs88+ewAL+nG2/SN0m1IBNgArgEnAMaAfOIyVLBqBLwJtwKNB\nWga4IuJ8lwBPAfuAbuCuIH08cD/werD9O1aSASux7AT+DugBdgF/Eey7EtjN8CC1IrjvsAWo5BDX\nwKlTp2JtVH7JUUpkNhYQLgjeX8PpjxWrgmOWYV/QfwV+5znfFOyLfDv2xW8AFgf7vgQ8B8wItjVB\nGlhw6AuuNRpYDhwFpgb7twLXhq7zX8A/5FxbwSG+gf7+/lgbCg51aSzwNPBAKG0p7uDwi9D7i4Fe\nzzlXAu2efVsZXr9xHfBa6Lq9DH+E7GEosHwZqysBC0BHgKac8ys4xDdw8uTJWBsVHhxU55C+M7AW\niOPAZ2Mc3xN63QtMwP3v0gRs85xjDrA99H5HkJa1j+Ff7l6s5AHwGPBRrDTyUSwA5QYxSeDUqVOx\ntkqn4JCuUdiv8EzgT7A6hizXr0SSX44dwNs8+3YBzaH384K0OF7CAsty4M+A7ye4J3EYGBiItVU6\nBYd0PQC8A7gBOJGzrweYjrVkZCVprfhfrBLzNqwCcgpDjwaPYa0j2TqHL5Cs/8T3gb8F3o3VOYRN\nYKhyc3ywSQQFB8k1H/gr4DKsJeFwsK0M9ndiX+JtWBNWI0NNWmG+/zVHgA8AH8IqJl/B6hMA/gVY\nB2wMtnVBWr5zZj2GNcE+w/DmtWbsESQTnOMY8HKec9W9WgkO5bAM+2JsAe4Yget3YV+YDuCFMlzv\nEayUsCmUNg1rgnwFq4A8q8zXX4U1Z3ZweuestDUBvwQ2Y0Hlc0F6uT4D3/VXUZ7PYKC3tzfWRoVX\nSJbaaKwmvRmrwV8PXFTme3gN+49ZLu8GLmf4l/NehpoH7wDuLvP1v4j1cyiHc4CFwesG4PfYv3m5\nPgPf9cv1GQwcPXo01kaFB4dSP1YsxoJDF9bW3gp8uMTXdClnT8RngQM5aTdgHZ0I/vxIma8P5fsM\nurEfAbBHoZeBuZTvM/BdH8r0GdTKY0Wpg8NchjeL7WToH6pcBrA+B+uAT5f52lmzGWqy7Anel9ut\nWM/HhyntY01YM1aKWcvIfAbZ6z8fvC/LZ6CmzHgqITwuwf6DLAf+Bit2j6SRKE4+AJyHFbd3A/eV\n4ZoNwONY68rhnH3l+AwagB8G1z9CGT8DlRzieZ3hve2asNJDOe0O/twLPMFQ81859WDPwmCtFHvK\nfP09DH0hv0npP4OxWGD4DvDjIK2cn0H2+t8NXb9sn4GCQzzrgLdjxbtxwCeAJ0t8zbBJWH8AgMlY\nt+JN/sNL5kng5uD1zQz9hy2XxtDrFZT2M8h2BHsJGwyWVa7PwHf9sn0GtRIcymE5VmO8laFRhOVy\nHlY5tR5r1irH9R/Deie+hdW3fBJrLXma8jRl5l7/L4FvY825G7AvZSmf9/8Y66q9nuHNhuX6DFzX\nX075PoOB/fv3x9qojMdur0qfT0Ck2gzs27cv1oHTp0+H07+Dy7ASz2js8eeenP1Lgf9maJzN4wx1\neMuXN5ExxWQWkdMV8cgwGvg6NoT+deD/sMex3F6pv8aahgvJG5u6T4ukrIimzLj9glwl/tT7FCk4\niKSsiArJOP2CBoCrsbqTn2JzgMTNm0gxjxWpPt+I1ArfY8WaNWt47rnnIrPGOP2LWJeAXqyi9ccM\nzTaWqkKDQ+rPNyK1whccrr76aq6++urB9/fdd1o/rDj9gsIdylYD/4m1BO2MkTeRQh8r8j7fXHLJ\nJUlm4dWmrWK34P9ybEU8VsTpFzSboTqHxcHr/THzJlJoycH1fHNl+IDNmzfzxBNPDL5vbW2lpaWl\nwMsVbySvX89/91q4/ooVKxIdX0RrxUlsasGfY6Xzh7HS+GeC/Q8Cfwr8dXBsL9CSJ2/BCg0OBf/t\nRWpdkb0fVwdb2IOh1/8RbHHzFqzQ4BBrzERra+vg6z17yj2cQKQwmUyGTCZTcP5qGHEZR6HBIfx8\nswt7vlmZe1C4KFfMh52GSy+9tC6vresnv/6ll146LE9bW1ui/LUybqKY7tPLGWrKfBj4t5z9A+E6\nB5FqFdQ5xP2uDHR1dcU6sLm5Ocl5y66Yfg6pPt+I1IpaKTlobIVIyhQcRMRJwUFEnOq9tUJEPFRy\nEBEnBQcRcVJwEBEnBQcRcVJwEBEnBQcRcVJTpog41UrJQRPMiqSsyBWvlgGdwBbgDsf+P8cml90I\nrAH+KLSvK0jvAF4o9u+hkoNIykq8bsU24D3AISyQfAO4KntpbNGb/YXeQJiCg0jKiggO4blZYWhu\n1nBw+F3o9Vrg3JxzpDYEXI8VIikr8boVYbdga1cMXhpbj3Qd8Oki/xoqOYikrYiSQ5KM78UWSV4S\nSlsC7AZmAk9hdRfPFnozCg4iKfM1Zba3t9Pe3h6VNdbcrFgl5ENYncOBUPru4M+9wBPYY4qCg0il\n8JUcFi1axKJFiwbfP/TQQ7mHxJmbdR7wI+BGrH4iaxJWoXkYmAxcB/xzYX8Do+AgkrISr1vxBeBs\n4IEgrQ8rIZyDBQ2w7/X3gF8UeiPZk4hIikq8bsWngi3XNmBhMRfOpeAgkrJa6SGp4CCSMgUHEXFS\ncDBdwJtAP0MVIyJ1TaMyTap9uUVqgUoOQyp2OS+RkVArwaHYsRWp9uUWqQVFDtmuGMWWHFLtyy1S\nC6rhix9HscEhsi93a2vr4IG5y5qLVKpMJkMmkyk4v4JDjL7cLS0tRZxeZGTk/pC1tbUlyq/gALOx\n0kL2PEX35a4lPT093n0HDx50ph89etSb58SJE870SZMmOdOnTZvmPdf06dMTnUuSUVMmvEbKfblF\naoFKDiLipOAgIk4KDiLipOAgIk61Ehw0+7RIyk6dOhVr88i3qA3AV4P9G4DLE+aNraJKDnv27HGm\n79q1y5tnw4YNzvTu7m5vHl9TYpp6e3u9+06ePOlM7+vrS5xn3LhxzvSxY8d6z+Vr5ly82D+o9qKL\nLnKmz58/35tn9OjR3n21rMSL2lwPLMDmmrwSmy7uqph5E1HJQSRlRYytCC9q08fQojZhNwCPBq/X\nAmdh80fGyZuIgoNIykq8qI3vmDkx8iZSUY8VIrXA91ixadOmfGM24j6PlGWaBAUHkZT5gkOMMRtx\nFrXJPebc4JixMfImoscKkZQV8VgRXtRmHLaozZM5xzwJ3BS8vgo4CPTEzJtI2UsO27Zt8+57/vnn\nnekbN2705tmxY4cz3Ve7D9GtAmmZOnWqd9/48eMTpQNMnjzZme4bkHX48GHvud544w1n+oEDB5zp\nAG+++aYzPWqQ0XnnnedMr/VWjCIGXsVZ1OanWIvFVuAo8Mk8eQumxwqRlJV4URuwIBA3b8EUHERS\nVis9JBUcRFKm4CAiTgoOIuKk4CAiTgoOBfI1PQIcOXLEmT5x4kRvnmuvvdaZPmPGDG+eKVOmePe5\nRDVLNjU1OdMbGxu9ec4880xn+hlnJO924mt+3Lp1qzfPpk2bnOkdHR3ePL7zFdIsWetNnJpDUkSc\nVHIQEScFBxFxUnAQEadaCQ5xasAewQZ2hGuxpmFrY76CLWRzVvq3JlKd6mkh3W8BXwO+HUq7EwsO\n92Jz1d0ZbHktXbrUu2/ZsmXO9KjVm3z7zj77bG+epK0CY8b4PybfdGxReaL2JeUbYHbo0CFvnrVr\n1zrTZ82a5c3zzDPPONP37t3rzeMbZHfWWe7fkqgWpmpSDV/8OOJ8S54FctvLwlNVPQp8JM2bEqlm\nRU4wWzEK/QmbjT1qEPw5O53bEal+tVJySKN8O0D86a1Eal69B4cebMbbbqARcM4p39raOvg6d4os\nkUqVyWTyzfUYqUTBYRrQBszHZpj+ODYLVFgTVjc4C/vB/ga2xgXAKuBTQLaS6C7gZ1EXLDQ4PAnc\nDNwT/Plj10EtLS0Fnl5k5MSY6zFSiYJDnEaAPuB2YD3QALRjrYmdWLD4SrDFEic4PAZcA8zApr7+\nAnA38APgFoaiWCznn3++d9/06dOd6VG12P39/YnSC3Hs2DHvvt27dzvTfeNEIHrBm6R840SiWnia\nm5ud6fv37/fm8bV+RI3H8LWk+BYvUmtFpBuw7yFYI8CvOD04dAcbwBFsmri5WHCAhLNWxwkOKz3p\n7hFPInWuRMEhaSNAM7ZUXrjd+lZsctp1wN9z+mPJMJp9WiRlRTRlPoV1Nszdbsg5Ll8jQAPwQ+A2\nrAQBtmzeecBCYDdwX76/h7pPi6TMV3LYsmULW7Zsicr6gYh9sRoBsPUrHge+y/C6wPDx3wT+J+pG\nQMFBJHW+4LBgwQIWLFgw+H716kQTRcdpBBiFTUn/EnB/zr5GrMQAsILhwyGc9FghkrISja24GytZ\nvAK8L3gPtkbmT4LXS4AbgfcCHcGWHZNwD7AR2IBVbN6e74IqOYikrEQVkvtxNwLsAj4YvP4t/h/8\nmzzpXmUPDjt3+pfv8zWlvfyyf+EeX5Pl8ePHvXmqoV97XL7Vq15//XVvnnHjxjnT9+3b583jm9ou\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1b9f3d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see 'conv1'\n",
    "print (\"Size of 'conv1' is %s\" % (conv1.shape,))\n",
    "\n",
    "# Plot ! \n",
    "for i in range(3):\n",
    "    plt.matshow(conv1[0, :, :, i], cmap=plt.get_cmap('gray'))\n",
    "    plt.title(str(i) + \"th conv1\")\n",
    "    plt.colorbar()\n",
    "    plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Conv2 (+bias)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'conv2' is (1, 28, 28, 64)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62b8169590>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1bff450>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nIiIiIlK7/h8FZ+gL9XPZnAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62b8133410>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see 'conv2'\n",
    "print (\"Size of 'conv2' is %s\" % (conv2.shape,))\n",
    "\n",
    "# Plot ! \n",
    "for i in range(3):\n",
    "    plt.matshow(conv2[0, :, :, i], cmap=plt.get_cmap('gray'))\n",
    "    plt.title(str(i) + \"th conv2\")\n",
    "    plt.colorbar()\n",
    "    plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Conv3 (ReLU)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'conv3' is (1, 28, 28, 64)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62b034b990>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nREQkqf4fImFj9GEfkkQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1c10bd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1b9fb90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see 'conv3'\n",
    "print (\"Size of 'conv3' is %s\" % (conv3.shape,))\n",
    "\n",
    "# Plot ! \n",
    "for i in range(3):\n",
    "    plt.matshow(conv3[0, :, :, i], cmap=plt.get_cmap('gray'))\n",
    "    plt.title(str(i) + \"th conv3\")\n",
    "    plt.colorbar()\n",
    "    plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pool (max_pool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'pool' is (1, 14, 14, 64)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n1suWlmgOAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1c41fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63eb722f10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nB4bZ4JCiKpWjAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62b8154dd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see 'pool'\n",
    "print (\"Size of 'pool' is %s\" % (pool.shape,))\n",
    "\n",
    "# Plot ! \n",
    "for i in range(3):\n",
    "    plt.matshow(pool[0, :, :, i], cmap=plt.get_cmap('gray'))\n",
    "    plt.title(str(i) + \"th pool\")\n",
    "    plt.colorbar()\n",
    "    plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Dense"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'dense' is (1, 12544)\n",
      "Size of 'out' is (1, 10)\n"
     ]
    }
   ],
   "source": [
    "# Let's see 'dense'\n",
    "print (\"Size of 'dense' is %s\" % (dense.shape,))\n",
    "# Let's see 'out'\n",
    "print (\"Size of 'out' is %s\" % (out.shape,))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Convolution filters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of 'wc1' is (3, 3, 1, 64)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62b8204c10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nqSRMAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f62f1c41fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63c01c1310>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see weight! \n",
    "wc1 = sess.run(weights['wc1'])\n",
    "print (\"Size of 'wc1' is %s\" % (wc1.shape,))\n",
    "\n",
    "# Plot ! \n",
    "for i in range(3):\n",
    "    plt.matshow(wc1[:, :, 0, i], cmap=plt.get_cmap('gray'))\n",
    "    plt.title(str(i) + \"th conv filter\")\n",
    "    plt.colorbar()\n",
    "    plt.show() "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
